Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.

...powered by www.netzwerkartist.de...

 <<   zurück
Visual Basic 2005 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual Basic 2005

Visual Basic 2005
1.233 S., mit 2 CDs, 59,90 Euro
Galileo Computing
ISBN 3-89842-585-1
gp Kapitel 27 Fertigstellen eines Projekts
  gp 27.1 Konfigurationsdateien
    gp 27.1.1 Einführung
    gp 27.1.2 Die verschiedenen Konfigurationsdateien
    gp 27.1.3 Die Struktur einer Anwendungskonfigurationsdatei
    gp 27.1.4 Konfigurationsdateien mit Visual Studio 2005 bereitstellen
    gp 27.1.5 Einträge der Anwendungskonfigurationsdatei auswerten
    gp 27.1.6 Die Klassen »Configuration« und »ConfigurationManager«
    gp 27.1.7 Editierbare, anwendungsbezogene Einträge mit <appSettings>
    gp 27.1.8 Auswertung der Verbindungszeichenfolgen
    gp 27.1.9 Beispielprogramm mit einer Anwendungskonfigurationsdatei
    gp 27.1.10 Die Herausgeberrichtliniendatei
  gp 27.2 Lokalisierung von Programmen
    gp 27.2.1 Lokalisierung von Komponenten
    gp 27.2.2 Zusätzliche Lokalisierungsdateien
  gp 27.3 Weitergabe von Anwendungen
    gp 27.3.1 Allgemeine Anmerkungen
    gp 27.3.2 Weitergabeprojekte
    gp 27.3.3 Der »Windows Installer«
    gp 27.3.4 Weitergabeprojekte mit dem »Setup-Assistenten«
    gp 27.3.5 Die Editoren eines Weitergabeprojekts
    gp 27.3.6 Der »Dateisystem-Editor«
    gp 27.3.7 Der »Registrierungs-Editor«
    gp 27.3.8 Der »Dateityp-Editor«
    gp 27.3.9 Der »Benutzeroberflächen-Editor«
    gp 27.3.10 Der »Editor für benutzerdefinierte Aktionen«
    gp 27.3.11 Der »Editor für Startbedingungen«
  gp 27.4 »ClickOnce«-Verteilung
    gp 27.4.1 Allgemeine Beschreibung
    gp 27.4.2 Erstellen einer ClickOnce-Anwendung
    gp 27.4.3 Die Installation einer ClickOnce-Anwendung


Galileo Computing

27.2 Lokalisierung von Programmen  downtop

Soll ein Programm nicht nur in einer Sprache, sondern in mehreren Sprachen weitergegeben werden, spricht man von Lokalisierung. Bei einer lokalisierten Anwendung werden zum Beispiel alle Zeichenfolgen in der Sprache ausgegeben, die der Landessprache des installierten Systems entspricht. Lokalisierte Anwendungen sind aber nicht nur in der Lage, landessprachlich spezifische Zeichenfolgen auszugeben, sondern können auch das Layout einer Benutzeroberfläche gestalten. Stellen Sie sich dazu nur vor, dass Sie eine Schaltfläche in deutscher Sprache beschriften, die Übersetzung des Textes in eine andere Sprache aber über die Breite der Schaltfläche hinausgehen würde und nicht mehr vollständig angezeigt werden könnte. .NET löst dieses Problem auf recht einfache Art und Weise.

Die Lokalisierung einer Anwendung lässt sich durch zwei Arbeitsschritte beschreiben:

1. Im ersten Schritt werden die Elemente der Benutzeroberfläche lokalisiert. Dazu kann der Text in der Titelleiste einer Form ebenso gehören wie die Beschriftung einer Schaltfläche sowie die Anpassung der Benutzeroberfläche an die lokalisierten Gegebenheiten.
       
2. Im zweiten Schritt wird der Programmcode berücksichtigt, damit auch die codierten Meldungen in der Landessprache ausgegeben werden.
       

Galileo Computing

27.2.1 Lokalisierung von Komponenten  downtop

Die Eigenschaften »Localizable« und »Language«

Der Weg zu einer lokalisierten Windows-Anwendung führt über die Eigenschaften Localizable und Language, die im Eigenschaftsfenster der Form angezeigt werden, aber keine Mitglieder der Klasse Form sind, sondern vielmehr von der Entwicklungsumgebung zur Unterstützung der Entwicklungsarbeit eingeblendet werden.

Soll die Form lokalisiert werden, müssen Sie

Localizable = True

setzen. Das hat eine wichtige Konsequenz, denn infolgedessen wird eine Reihe von Einstellungen, beispielsweise die Beschriftung in der Titelleiste einer Form, die Beschriftung einer Schaltfläche und darüber hinaus auch deren Position, in einer Ressourcendatei gespeichert. Der Name der Ressourcendatei entspricht dem Namen der Quellcodedatei, hat allerdings die Dateiendung .RESX. Lautet die Datei Form1.vb, ist der Name des Ressourcendatei Form1.resx. Jedem Formmodul ist eine eigene Ressourcendatei zugeordnet, die automatisch von der Entwicklungsumgebung erzeugt wird.

Die zweite ausschlaggebende Eigenschaft ist Language, deren Vorgabe Standard ist, aber aus einer langen Liste auch anders festgelegt werden kann. Insbesondere wenn Sie nicht mit einem englischsprachigen System arbeiten, sollten Sie der Standardeinstellung besondere Aufmerksamkeit widmen. Lokalisieren Sie Ihre Anwendung beispielsweise in englischer und italienischer Sprache, während Sie in der Standardvorgabe die deutsche Sprache benutzen, wird der Anwender, der eine andere Landessprache als die drei genannten einsetzt, mit einer Anwendung in der Landessprache überrascht, die der Standardvorgabe entspricht – also in Deutsch. Wie Sie dieses Problem lösen können und Ihre Anwendung in der weltweit geläufigsten Sprache, in Englisch, ausliefern können, werden Sie gleich noch erfahren.

Die Ressourcendateien

Um sich die Ressourcendateien in der Entwicklungsumgebung anzeigen zu lassen, klicken Sie in der Symbolleiste des Projektmappen-Explorers auf Alle Dateien anzeigen. Die RESX-Dateien sind als Elemente des Knotens der Form-Datei untergeordnet. Wie könnte es anders sein, natürlich wird auch eine Ressourcendatei durch eine XML-Notation beschrieben.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 27.6     Der Editor einer Ressourcendatei

Ein Programmbeispiel

Wir wollen nun anhand eines kleinen Beispielprogramms die Lokalisierung einer Anwendung studieren. Dabei sei angenommen, dass auf einem deutschsprachigen System entwickelt wird und das Programm darüber hinaus auch noch in Englisch und Italienisch ausgeliefert werden soll. Weil die Standardsprache Englisch sein soll, stellen wir zunächst die Eigenschaft Language auf Deutsch ein.


Hinweis

Um sich später bei der Entwicklung einer lokalisierten Anwendung nicht zu »verzetteln«, sollten die beiden Eigenschaften Localizable und Language festgelegt werden, bevor Sie mit der Programmierung beginnen.


Die Form soll eine Schaltfläche enthalten. Das Ziel, das wir mit diesem Beispiel anstreben, ist die sprachspezifische Ausgabe des Titelleistentextes und der Beschriftung der Schaltfläche. Da in der Eigenschaft Language=Deutsch eingestellt ist, können wir im Eigenschaftsfenster nun die Eigenschaft Text der Form (»Guten Morgen«) und der Schaltfläche (»Hier klicken«) festlegen.

Im nächsten Schritt soll die italienische Sprachversion berücksichtigt werden. Dazu wird Language auf Italienisch gesetzt. Tragen Sie nun die entsprechende italienische Übersetzung in den Text-Eigenschaften ein (»Buongiorno« und »Prema qui«). Dabei brauchen Sie sich nicht davon irritieren zu lassen, dass Ihnen zunächst andere Einträge angezeigt werden. Im letzten Schritt wählen Sie Language=(Standard). Die weitere Prozedur ist wie zuvor, jedoch in englischer Sprache (»Good morning« und »Click here«).

Über diese Einstellungen hinaus sollten Sie aus Demonstrationsgründen noch einmal unter Language die italienische Sprachversion einstellen und die Schaltfläche deutlich erkennbar vergrößern. Anschließend können Sie das Projekt speichern und ausführen. In Abhängigkeit vom installierten System erhalten Sie dann die entsprechende Sprachausgabe. Angenommen, Sie hätten eine japanische Version installiert, würden die Beschriftungen in Englisch angezeigt, weil diese Sprache als Standard festgelegt worden ist.

Wenn Sie einen Blick in den Projektmappen-Explorer werfen, werden Sie feststellen, dass für jede Einstellung unter Language eine weitere Ressourcendatei zum Projekt hinzugefügt worden ist, in deren Bezeichner auch eine Sprachkennung eingebaut ist (siehe Abbildung 27.7). Die Ressourcendatei ohne Sprachkennung dient der Standardeinstellung, die Datei Form1.it.resx speichert die italienischen Ressourcen, die Datei Form1.de.resx die deutschen. Im Windows Explorer ist zu sehen, dass die spezifischen Ressourcendateien deutlich kleiner sind als die der Standardeinstellung. Das hängt damit zusammen, dass die spezifischen Ressourcendateien nur die Abweichungen von der Datei enthalten, welche die Standardangaben abgespeichert hat.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 27.7     Die Ressourcendateien einer lokalisierten Form

Beim Wechsel in das Ausgabeverzeichnis der kompilierten Dateien machen wir noch eine weitere interessante Entdeckung: Für jede sprachspezifische Lokalisierung wird ein eigener Unterordner angelegt, der den Bezeichner der .NET-Sprachkennung hat, in unserem Beispiel »de« für Deutschland und »it« für Italien. In diesen Ordnern sind die lokalisierten Ressourcen als DLL-Dateien abgelegt. Die Einstellungen der Standardsprache werden direkt in die EXE-Datei kompiliert.

Testen der Lokalisierungen

Starten wir eine lokalisierte Anwendung, wird automatisch die Landeseinstellung des Betriebssystems verwendet. Ist die Anwendung nicht in der entsprechenden Sprachversion lokalisiert, wird die Sprache der Standardeinstellung der Eigenschaft Language benutzt.

Natürlich wollen wir auch alle Lokalisierungen testen. Hier hilft uns My.Application mit der Methode CurrentUICulture weiter, der wir für die zu testende Sprache ein Landeskürzel übergeben. Wollen wir die englische Lokalisierung testen, lautet das Kürzel »en«, für die italienische Lokalisierung »it«, für die deutsche »de«. Die Änderung muss vor dem Aufruf der Methode InitializeComponent im Konstruktor erfolgen:


Public Sub New()
My.Application.ChangeUICulture("it")
InitializeComponent()
End Sub

Wollen Sie darüber hinaus auch die englische bzw. deutsche Lokalisierung prüfen, brauchen Sie nur das Kürzel auszutauschen. Vor dem Verteilen der Anwendung müssen Sie natürlich die Anweisung wieder löschen. Wollen Sie über die Anpassung der Landessprache hinaus auch Datums- und Zeitangaben berücksichtigen, müssen Sie die Methode ChangeCulture ausführen. In der Zeichenkette wird über die Landessprache hinaus auch die jeweilige Landeseinstellung berücksichtigt, z.  B. »en-GB« für Englisch in Großbritannien und »en-US« für Englisch in den USA.

Wie das entsprechende Kürzel lautet, können Sie der Dokumentation der Klasse CultureInfo entnehmen.


Galileo Computing

27.2.2 Zusätzliche Lokalisierungsdateien  toptop

Die bisher besprochenen Ressourcendateien sind nur in der Lage, bestimmte Eigenschaften der Komponenten zu lokalisieren. Wollen Sie aber beispielsweise in einem Meldungsfenster einen Text ausgeben, müssen Sie dem Projekt zusätzliche Ressourcendateien hinzufügen, um auch diese Meldungen in der landesspezifischen Sprache anzuzeigen. Das Hinzufügen geht wieder über das Kontextmenü des Projekts. Wählen Sie Hinzufügen und dann Neues Element ..., und wählen Sie die Vorlage Ressourcendatei. Unser Beispielprogramm LocalizedWinApp wollen wir in drei Landessprachen weitergeben, also benötigen wir auch drei zusätzliche Ressourcendateien. Bei der Vergabe der Dateinamen sollten wir darauf achten, die Konvention einzuhalten. Das heißt, alle drei Dateien müssen gleich benannt werden und die Dateiendung .RESX haben. Die Ressourcendateien der Sprachen, die nicht der Standardvorgabe entsprechen, werden zwischen dem Bezeichner und der Dateiendung um das Landeskürzel ergänzt. Somit könnten für unser Projekt die Namen MyResource.resx, MyResource.de.resx und MyResource.it.resx lauten.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 27.8     Die Projektdateien des Beispielprogramms »LocalizedWinApp«

Nehmen wir an, dass mit dem Klicken auf die Schaltfläche in der Form ein Meldungsfenster angezeigt werden soll. Der Meldungstext soll aus der Variablen strMeldung bezogen werden und muss natürlich lokalisiert sein. Dazu öffnen wir die entsprechende Ressourcendatei in der Entwicklungsumgebung und tragen den Inhalt von strMeldung, wie in der Abbildung 27.9 zu sehen ist, ein. Obwohl in der Abbildung nur eine Variable, die übrigens im Code nicht deklariert werden muss, eingetragen ist, werden in jeder Ressourcendatei alle lokalisierten Angaben gemacht, die zur Laufzeit sprachspezifisch ausgegeben werden müssen.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 27.9     Eintrag in eine benutzerdefinierte Ressourcendatei

Der Zugriff auf die in den Ressourcendateien gespeicherten Zeichenfolgen erfolgt am einfachsten über:

My.Resources.<Dateiname>.<Zeichenfolgenbezeichner>

Im Click-Ereignishandler der Schaltfläche sieht der Code dann wie folgt aus:


Private Sub Button1_Click(...) Handles Button1.Click
MessageBox.Show(My.Resources.MyResource.strMeldung)
End Sub

Den vollständigen Code des Beispielprogramms finden Sie auf der Buch-CD unter \Kapitel 27\LocalizedWinApp.


Tipp

Insbesondere wenn sehr viele Zeichenfolgen lokalisiert werden müssen, ist es sehr mühevoll, jeden Bezeichner in jeder gewünschten Ressourcendatei neu einzutragen – ganz abgesehen vom damit verbundenen Fehlerpotenzial. Sie können es sich aber sehr einfach machen, indem Sie die Bezeichner nur in eine Ressourcendatei eintragen und diese anschließend mit einem Editor öffnen (benutzen Sie hierzu das Kontextmenü der entsprechenden Datei im Projektmappen-Explorer). Sie erkennen dann, dass eine Ressourcendatei nichts anderes als eine XML-Datei ist, in der die Bezeichner der Ressourcen samt deren Werte eingetragen sind. Kopieren Sie das XML einfach in die XML-Datei einer anderen Lokalisierung. Danach brauchen Sie nur noch die Werte anzupassen.


 <<   zurück
  
  Zum Katalog
Zum Katalog: Visual Basic 2005
Visual Basic 2005
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual C# 2005






 Visual C# 2005


Zum Katalog: Fortgeschrittene Programmierung mit Visual C# 2005






 Fortgeschrittene
 Programmierung
 mit Visual C# 2005


Zum Katalog: Das Programmierhandbuch SQL Server 2005






 Das Programmier-
 handbuch
 SQL Server 2005


Zum Katalog: Einstieg in Visual Basic 2005






 Einstieg in
 Visual Basic 2005


Zum Katalog: Einstieg in Visual C# 2005






 Einstieg in
 Visual C# 2005


Zum Katalog: Konzepte und Lösungen für Microsoft-Netzwerke






 Konzepte und
 Lösungen für
 Microsoft-Netzwerke


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de